package com.wr.common.core.utils.uuid;

import cn.hutool.core.lang.generator.SnowflakeGenerator;

import java.util.concurrent.ThreadLocalRandom;

/**
 * ID生成器工具类
 *
 * @author wr
 */
public class IdUtils {

    /**
     * 获取随机十六位
     *
     * @return
     */
    public static Long getUuid() {
        SnowflakeGenerator snowflakeGenerator = new SnowflakeGenerator();
        return snowflakeGenerator.next();
    }

    /**
     * 获取随机UUID
     *
     * @return 随机UUID
     */
    public static String randomUuid() {
        return UUID.randomUuid().toString();
    }


    /**
     * 获取四位随机数
     *
     * @return
     */
    public static Integer getFourNum() {
        return ThreadLocalRandom.current().nextInt(1000, 10000);
    }

    /**
     * 获取六位随机数
     *
     * @return
     */
    public static Integer getSixNum() {
        return ThreadLocalRandom.current().nextInt(100000, 1000000);
    }

    /**
     * 简化的UUID，去掉了横线
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String simpleUuid() {
        return UUID.randomUuid().toString(true);
    }

    /**
     * 获取随机UUID，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 随机UUID
     */
    public static String fastUuid() {
        return UUID.fastUuid().toString();
    }

    /**
     * 简化的UUID，去掉了横线，使用性能更好的ThreadLocalRandom生成UUID
     *
     * @return 简化的UUID，去掉了横线
     */
    public static String fastSimpleUuid() {
        return UUID.fastUuid().toString(true);
    }
}
